package snailAI.Service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.ai.tool.annotation.Tool;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import snailAI.Entity.User;
import java.util.List;

/**
 * 用户表Service接口：负责用户信息的全生命周期管理及相关业务逻辑处理
 * 继承自MyBatis-Plus的IService，提供基础CRUD能力，同时支持自定义用户相关业务方法
 */
@Component
@Service
public interface UserService extends IService<User> {

    /**
     * 新增用户
     * @param user 用户实体对象（需包含必要的用户信息）
     * @return 新增成功返回true，失败返回false
     */
    boolean addUser(User user);

    /**
     * 根据用户ID查询用户信息
     * @param id 用户唯一标识ID
     * @return 对应的用户实体对象，若不存在则返回null
     */
    User getUserById(Long id);

    /**
     * 查询所有用户信息（支持分页时可扩展参数）
     * @return 用户列表集合，无数据时返回空集合
     */
    List<User> listAllUsers();

    /**
     * 更新用户信息（全量更新，需传入完整用户信息）
     * @param user 包含更新后信息的用户实体（必须包含ID）
     * @return 更新成功返回true，失败返回false
     */
    boolean updateUser(User user);

    /**
     * 根据用户ID删除用户
     * @param id 用户唯一标识ID
     * @return 删除成功返回true，失败返回false
     */
    boolean deleteUserById(Long id);

    /**
     * 批量删除用户
     * @param ids 用户ID集合
     * @return 批量删除成功的数量
     */
    int batchDeleteUsers(List<Long> ids);

    List<String> getMessageListIds(int uid);

    int insertMessageList(int user_id, String chat_id);

}